<!doctype html>
<html class="default no-js">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>HttpResponse | uWebSockets.js v18.1.0 documentation</title>
	<meta name="description" content="Documentation for uWebSockets.js v18.1.0 documentation">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
	<div class="tsd-page-toolbar">
		<div class="container">
			<div class="table-wrap">
				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
					<div class="field">
						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
						<input id="tsd-search-field" type="text" />
					</div>
					<ul class="results">
						<li class="state loading">Preparing search index...</li>
						<li class="state failure">The search index is not available</li>
					</ul>
					<a href="../index.html" class="title">uWebSockets.js v18.1.0 documentation</a>
				</div>
				<div class="table-cell" id="tsd-widgets">
					<div id="tsd-filter">
						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
						<div class="tsd-filter-group">
							<div class="tsd-select" id="tsd-filter-visibility">
								<span class="tsd-select-label">All</span>
								<ul class="tsd-select-list">
									<li data-value="public">Public</li>
									<li data-value="protected">Public/Protected</li>
									<li data-value="private" class="selected">All</li>
								</ul>
							</div>
							<input type="checkbox" id="tsd-filter-inherited" checked />
							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
							<input type="checkbox" id="tsd-filter-only-exported" />
							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
						</div>
					</div>
					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
				</div>
			</div>
		</div>
	</div>
	<div class="tsd-page-title">
		<div class="container">
			<ul class="tsd-breadcrumb">
				<li>
					<a href="../index.html">Globals</a>
				</li>
				<li>
					<a href="httpresponse.html">HttpResponse</a>
				</li>
			</ul>
			<h1>Interface HttpResponse</h1>
		</div>
	</div>
</header>
<div class="container container-main">
	<div class="row">
		<div class="col-8 col-content">
			<section class="tsd-panel tsd-comment">
				<div class="tsd-comment tsd-typography">
					<div class="lead">
						<p>An HttpResponse is valid until either onAborted callback or any of the .end/.tryEnd calls succeed. You may attach user data to this object.</p>
					</div>
				</div>
			</section>
			<section class="tsd-panel tsd-hierarchy">
				<h3>Hierarchy</h3>
				<ul class="tsd-hierarchy">
					<li>
						<span class="target">HttpResponse</span>
					</li>
				</ul>
			</section>
			<section class="tsd-panel tsd-kind-interface">
				<h3 class="tsd-before-signature">Indexable</h3>
				<div class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">[</span>key: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]: </span><span class="tsd-signature-type">any</span></div>
				<div class="tsd-comment tsd-typography">
					<div class="lead">
						<p>Arbitrary user data may be attached to this object</p>
					</div>
				</div>
			</section>
			<section class="tsd-panel-group tsd-index-group">
				<h2>Index</h2>
				<section class="tsd-panel tsd-index-panel">
					<div class="tsd-index-content">
						<section class="tsd-index-section ">
							<h3>Methods</h3>
							<ul class="tsd-index-list">
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#close" class="tsd-kind-icon">close</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#cork" class="tsd-kind-icon">cork</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#end" class="tsd-kind-icon">end</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#getproxiedremoteaddress" class="tsd-kind-icon">get<wbr>Proxied<wbr>Remote<wbr>Address</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#getproxiedremoteaddressastext" class="tsd-kind-icon">get<wbr>Proxied<wbr>Remote<wbr>Address<wbr>AsText</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#getremoteaddress" class="tsd-kind-icon">get<wbr>Remote<wbr>Address</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#getremoteaddressastext" class="tsd-kind-icon">get<wbr>Remote<wbr>Address<wbr>AsText</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#getwriteoffset" class="tsd-kind-icon">get<wbr>Write<wbr>Offset</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#onaborted" class="tsd-kind-icon">on<wbr>Aborted</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#ondata" class="tsd-kind-icon">on<wbr>Data</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#onwritable" class="tsd-kind-icon">on<wbr>Writable</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#tryend" class="tsd-kind-icon">try<wbr>End</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter"><a href="httpresponse.html#upgrade" class="tsd-kind-icon">upgrade</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#write" class="tsd-kind-icon">write</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#writeheader" class="tsd-kind-icon">write<wbr>Header</a></li>
								<li class="tsd-kind-method tsd-parent-kind-interface"><a href="httpresponse.html#writestatus" class="tsd-kind-icon">write<wbr>Status</a></li>
							</ul>
						</section>
					</div>
				</section>
			</section>
			<section class="tsd-panel-group tsd-member-group ">
				<h2>Methods</h2>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="close" class="tsd-anchor"></a>
					<h3>close</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">close<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L130">index.d.ts:130</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Immediately force closes the connection. Any onAborted callback will run.</p>
								</div>
							</div>
							<h4 class="tsd-returns-title">Returns <a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="cork" class="tsd-anchor"></a>
					<h3>cork</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">cork<span class="tsd-signature-symbol">(</span>cb<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L175">index.d.ts:175</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Corking a response is a performance improvement in both CPU and network, as you ready the IO system for writing multiple chunks at once.
										By default, you&#39;re corked in the immediately executing top portion of the route handler. In all other cases, such as when returning from
										await, or when being called back from an async database request or anything that isn&#39;t directly executing in the route handler, you&#39;ll want
										to cork before calling writeStatus, writeHeader or just write. Corking takes a callback in which you execute the writeHeader, writeStatus and
										such calls, in one atomic IO operation. This is important, not only for TCP but definitely for TLS where each write would otherwise result
									in one TLS block being sent off, each with one send syscall.</p>
								</div>
								<p>Example usage:</p>
								<p>res.cork(() =&gt; {
									res.writeStatus(&quot;200 OK&quot;).writeHeader(&quot;Some&quot;, &quot;Value&quot;).write(&quot;Hello world!&quot;);
								});</p>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>cb: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
									<ul class="tsd-parameters">
										<li class="tsd-parameter-signature">
											<ul class="tsd-signatures tsd-kind-type-literal">
												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
											</ul>
											<ul class="tsd-descriptions">
												<li class="tsd-description">
													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
												</li>
											</ul>
										</li>
									</ul>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="end" class="tsd-anchor"></a>
					<h3>end</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">end<span class="tsd-signature-symbol">(</span>body<span class="tsd-signature-symbol">?: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L125">index.d.ts:125</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Ends this response by copying the contents of body.</p>
								</div>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5><span class="tsd-flag ts-flagOptional">Optional</span> body: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="getproxiedremoteaddress" class="tsd-anchor"></a>
					<h3>get<wbr>Proxied<wbr>Remote<wbr>Address</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Proxied<wbr>Remote<wbr>Address<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L157">index.d.ts:157</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Returns the remote IP address in binary format (4 or 16 bytes), as reported by the PROXY Protocol v2 compatible proxy.</p>
								</div>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="getproxiedremoteaddressastext" class="tsd-anchor"></a>
					<h3>get<wbr>Proxied<wbr>Remote<wbr>Address<wbr>AsText</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Proxied<wbr>Remote<wbr>Address<wbr>AsText<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L160">index.d.ts:160</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Returns the remote IP address as text, as reported by the PROXY Protocol v2 compatible proxy.</p>
								</div>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="getremoteaddress" class="tsd-anchor"></a>
					<h3>get<wbr>Remote<wbr>Address</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Remote<wbr>Address<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L151">index.d.ts:151</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Returns the remote IP address in binary format (4 or 16 bytes).</p>
								</div>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="getremoteaddressastext" class="tsd-anchor"></a>
					<h3>get<wbr>Remote<wbr>Address<wbr>AsText</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Remote<wbr>Address<wbr>AsText<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L154">index.d.ts:154</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Returns the remote IP address as text.</p>
								</div>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ArrayBuffer</span></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="getwriteoffset" class="tsd-anchor"></a>
					<h3>get<wbr>Write<wbr>Offset</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">get<wbr>Write<wbr>Offset<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L133">index.d.ts:133</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Returns the global byte write offset for this response. Use with onWritable.</p>
								</div>
							</div>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="onaborted" class="tsd-anchor"></a>
					<h3>on<wbr>Aborted</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">on<wbr>Aborted<span class="tsd-signature-symbol">(</span>handler<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L145">index.d.ts:145</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Every HttpResponse MUST have an attached abort handler IF you do not respond
										to it immediately inside of the callback. Returning from an Http request handler
										without attaching (by calling onAborted) an abort handler is ill-use and will termiante.
									When this event emits, the response has been aborted and may not be used.</p>
								</div>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>handler: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
									<ul class="tsd-parameters">
										<li class="tsd-parameter-signature">
											<ul class="tsd-signatures tsd-kind-type-literal">
												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
											</ul>
											<ul class="tsd-descriptions">
												<li class="tsd-description">
													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
												</li>
											</ul>
										</li>
									</ul>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="ondata" class="tsd-anchor"></a>
					<h3>on<wbr>Data</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">on<wbr>Data<span class="tsd-signature-symbol">(</span>handler<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>chunk<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span>, isLast<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L148">index.d.ts:148</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Handler for reading data from POST and such requests. You MUST copy the data of chunk if isLast is not true. We Neuter ArrayBuffers on return, making it zero length.</p>
								</div>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>handler: <span class="tsd-signature-symbol">(</span>chunk<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span>, isLast<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
									<ul class="tsd-parameters">
										<li class="tsd-parameter-signature">
											<ul class="tsd-signatures tsd-kind-type-literal">
												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>chunk<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ArrayBuffer</span>, isLast<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
											</ul>
											<ul class="tsd-descriptions">
												<li class="tsd-description">
													<h4 class="tsd-parameters-title">Parameters</h4>
													<ul class="tsd-parameters">
														<li>
															<h5>chunk: <span class="tsd-signature-type">ArrayBuffer</span></h5>
														</li>
														<li>
															<h5>isLast: <span class="tsd-signature-type">boolean</span></h5>
														</li>
													</ul>
													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
												</li>
											</ul>
										</li>
									</ul>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="onwritable" class="tsd-anchor"></a>
					<h3>on<wbr>Writable</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">on<wbr>Writable<span class="tsd-signature-symbol">(</span>handler<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>offset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L139">index.d.ts:139</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Registers a handler for writable events. Continue failed write attempts in here.
										You MUST return true for success, false for failure.
									Writing nothing is always success, so by default you must return true.</p>
								</div>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>handler: <span class="tsd-signature-symbol">(</span>offset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">boolean</span></h5>
									<ul class="tsd-parameters">
										<li class="tsd-parameter-signature">
											<ul class="tsd-signatures tsd-kind-type-literal">
												<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>offset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
											</ul>
											<ul class="tsd-descriptions">
												<li class="tsd-description">
													<h4 class="tsd-parameters-title">Parameters</h4>
													<ul class="tsd-parameters">
														<li>
															<h5>offset: <span class="tsd-signature-type">number</span></h5>
														</li>
													</ul>
													<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
												</li>
											</ul>
										</li>
									</ul>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="tryend" class="tsd-anchor"></a>
					<h3>try<wbr>End</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">try<wbr>End<span class="tsd-signature-symbol">(</span>fullBodyOrChunk<span class="tsd-signature-symbol">: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a>, totalSize<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">]</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L127">index.d.ts:127</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Ends this response, or tries to, by streaming appropriately sized chunks of body. Use in conjunction with onWritable. Returns tuple [ok, hasResponded].</p>
								</div>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>fullBodyOrChunk: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
								<li>
									<h5>totalSize: <span class="tsd-signature-type">number</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">]</span></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
					<a name="upgrade" class="tsd-anchor"></a>
					<h3>upgrade</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
						<li class="tsd-signature tsd-kind-icon">upgrade&lt;T&gt;<span class="tsd-signature-symbol">(</span>userData<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span>, secWebSocketKey<span class="tsd-signature-symbol">: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a>, secWebSocketProtocol<span class="tsd-signature-symbol">: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a>, secWebSocketExtensions<span class="tsd-signature-symbol">: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a>, context<span class="tsd-signature-symbol">: </span><a href="us_socket_context_t.html" class="tsd-signature-type">us_socket_context_t</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L178">index.d.ts:178</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Upgrades a HttpResponse to a WebSocket. See UpgradeAsync, UpgradeSync example files.</p>
								</div>
							</div>
							<h4 class="tsd-type-parameters-title">Type parameters</h4>
							<ul class="tsd-type-parameters">
								<li>
									<h4>T</h4>
								</li>
							</ul>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>userData: <span class="tsd-signature-type">T</span></h5>
								</li>
								<li>
									<h5>secWebSocketKey: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
								<li>
									<h5>secWebSocketProtocol: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
								<li>
									<h5>secWebSocketExtensions: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
								<li>
									<h5>context: <a href="us_socket_context_t.html" class="tsd-signature-type">us_socket_context_t</a></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="write" class="tsd-anchor"></a>
					<h3>write</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">write<span class="tsd-signature-symbol">(</span>chunk<span class="tsd-signature-symbol">: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L123">index.d.ts:123</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Enters or continues chunked encoding mode. Writes part of the response. End with zero length write.</p>
								</div>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>chunk: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="writeheader" class="tsd-anchor"></a>
					<h3>write<wbr>Header</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">write<wbr>Header<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a>, value<span class="tsd-signature-symbol">: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L121">index.d.ts:121</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Writes key and value to HTTP response.
									See writeStatus and corking.</p>
								</div>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>key: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
								<li>
									<h5>value: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></h4>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
					<a name="writestatus" class="tsd-anchor"></a>
					<h3>write<wbr>Status</h3>
					<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
						<li class="tsd-signature tsd-kind-icon">write<wbr>Status<span class="tsd-signature-symbol">(</span>status<span class="tsd-signature-symbol">: </span><a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/uNetworking/uWebSockets.js/blob/f35f8c7/docs/index.d.ts#L117">index.d.ts:117</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Writes the HTTP status message such as &quot;200 OK&quot;.
										This has to be called first in any response, otherwise
									it will be called automatically with &quot;200 OK&quot;.</p>
								</div>
								<p>If you want to send custom headers in a WebSocket
									upgrade response, you have to call writeStatus with
									&quot;101 Switching Protocols&quot; before you call writeHeader,
									otherwise your first call to writeHeader will call
								writeStatus with &quot;200 OK&quot; and the upgrade will fail.</p>
								<p>As you can imagine, we format outgoing responses in a linear
									buffer, not in a hash table. You can read about this in
								the user manual under &quot;corking&quot;.</p>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>status: <a href="../index.html#recognizedstring" class="tsd-signature-type">RecognizedString</a></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <a href="httpresponse.html" class="tsd-signature-type">HttpResponse</a></h4>
						</li>
					</ul>
				</section>
			</section>
		</div>
		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
			<nav class="tsd-navigation primary">
				<ul>
					<li class="globals  ">
						<a href="../index.html"><em>Globals</em></a>
					</li>
				</ul>
			</nav>
			<nav class="tsd-navigation secondary menu-sticky">
				<ul class="before-current">
					<li class=" tsd-kind-interface">
						<a href="appoptions.html" class="tsd-kind-icon">App<wbr>Options</a>
					</li>
					<li class=" tsd-kind-interface">
						<a href="httprequest.html" class="tsd-kind-icon">Http<wbr>Request</a>
					</li>
				</ul>
				<ul class="current">
					<li class="current tsd-kind-interface">
						<a href="httpresponse.html" class="tsd-kind-icon">Http<wbr>Response</a>
						<ul>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#close" class="tsd-kind-icon">close</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#cork" class="tsd-kind-icon">cork</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#end" class="tsd-kind-icon">end</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#getproxiedremoteaddress" class="tsd-kind-icon">get<wbr>Proxied<wbr>Remote<wbr>Address</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#getproxiedremoteaddressastext" class="tsd-kind-icon">get<wbr>Proxied<wbr>Remote<wbr>Address<wbr>AsText</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#getremoteaddress" class="tsd-kind-icon">get<wbr>Remote<wbr>Address</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#getremoteaddressastext" class="tsd-kind-icon">get<wbr>Remote<wbr>Address<wbr>AsText</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#getwriteoffset" class="tsd-kind-icon">get<wbr>Write<wbr>Offset</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#onaborted" class="tsd-kind-icon">on<wbr>Aborted</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#ondata" class="tsd-kind-icon">on<wbr>Data</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#onwritable" class="tsd-kind-icon">on<wbr>Writable</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#tryend" class="tsd-kind-icon">try<wbr>End</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter">
								<a href="httpresponse.html#upgrade" class="tsd-kind-icon">upgrade</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#write" class="tsd-kind-icon">write</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#writeheader" class="tsd-kind-icon">write<wbr>Header</a>
							</li>
							<li class=" tsd-kind-method tsd-parent-kind-interface">
								<a href="httpresponse.html#writestatus" class="tsd-kind-icon">write<wbr>Status</a>
							</li>
						</ul>
					</li>
				</ul>
				<ul class="after-current">
					<li class=" tsd-kind-interface">
						<a href="templatedapp.html" class="tsd-kind-icon">Templated<wbr>App</a>
					</li>
					<li class=" tsd-kind-interface">
						<a href="websocket.html" class="tsd-kind-icon">Web<wbr>Socket</a>
					</li>
					<li class=" tsd-kind-interface">
						<a href="websocketbehavior.html" class="tsd-kind-icon">Web<wbr>Socket<wbr>Behavior</a>
					</li>
					<li class=" tsd-kind-interface">
						<a href="us_listen_socket.html" class="tsd-kind-icon">us_<wbr>listen_<wbr>socket</a>
					</li>
					<li class=" tsd-kind-interface">
						<a href="us_socket_context_t.html" class="tsd-kind-icon">us_<wbr>socket_<wbr>context_<wbr>t</a>
					</li>
					<li class=" tsd-kind-type-alias">
						<a href="../index.html#compressoptions" class="tsd-kind-icon">Compress<wbr>Options</a>
					</li>
					<li class=" tsd-kind-type-alias">
						<a href="../index.html#recognizedstring" class="tsd-kind-icon">Recognized<wbr>String</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#dedicated_compressor_128kb" class="tsd-kind-icon">DEDICATED_<wbr>COMPRESSOR_<wbr>128KB</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#dedicated_compressor_16kb" class="tsd-kind-icon">DEDICATED_<wbr>COMPRESSOR_<wbr>16KB</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#dedicated_compressor_256kb" class="tsd-kind-icon">DEDICATED_<wbr>COMPRESSOR_<wbr>256KB</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#dedicated_compressor_32kb" class="tsd-kind-icon">DEDICATED_<wbr>COMPRESSOR_<wbr>32KB</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#dedicated_compressor_3kb" class="tsd-kind-icon">DEDICATED_<wbr>COMPRESSOR_<wbr>3KB</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#dedicated_compressor_4kb" class="tsd-kind-icon">DEDICATED_<wbr>COMPRESSOR_<wbr>4KB</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#dedicated_compressor_64kb" class="tsd-kind-icon">DEDICATED_<wbr>COMPRESSOR_<wbr>64KB</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#dedicated_compressor_8kb" class="tsd-kind-icon">DEDICATED_<wbr>COMPRESSOR_<wbr>8KB</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#disabled" class="tsd-kind-icon">DISABLED</a>
					</li>
					<li class=" tsd-kind-variable">
						<a href="../index.html#shared_compressor" class="tsd-kind-icon">SHARED_<wbr>COMPRESSOR</a>
					</li>
					<li class=" tsd-kind-function">
						<a href="../index.html#app" class="tsd-kind-icon">App</a>
					</li>
					<li class=" tsd-kind-function">
						<a href="../index.html#sslapp" class="tsd-kind-icon">SSLApp</a>
					</li>
					<li class=" tsd-kind-function">
						<a href="../index.html#us_listen_socket_close" class="tsd-kind-icon">us_<wbr>listen_<wbr>socket_<wbr>close</a>
					</li>
				</ul>
			</nav>
		</div>
	</div>
</div>
<footer class="with-border-bottom">
	<div class="container">
		<h2>Legend</h2>
		<div class="tsd-legend-group">
			<ul class="tsd-legend">
				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
			</ul>
		</div>
	</div>
</footer>
<div class="container tsd-generator">
	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
<script>if (location.protocol == 'file:') document.write('<script src="../assets/js/search.js"><' + '/script>');</script>
</body>
</html>